|  |  | @@ -6,10 +6,12 @@ from django_curtail_uuid import CurtailUUID | 
            
            
              | 6 | 6 |  from django_logit import logit | 
            
            
              | 7 | 7 |  from django_response import response | 
            
            
              | 8 | 8 |  from ipaddr import client_ip | 
            
            
              | 9 |  | -from pywe_miniapp import get_userinfo | 
            
            
              |  | 9 | +from pywe_miniapp import get_session_key, get_userinfo, store_session_key | 
            
            
              |  | 10 | +from pywe_storage import RedisStorage | 
            
            
              | 10 | 11 |  from TimeConvert import TimeConvert as tc | 
            
            
              | 11 | 12 |   | 
            
            
              | 12 | 13 |  from account.models import UserInfo | 
            
            
              |  | 14 | +from utils.redis.connect import r | 
            
            
              | 13 | 15 |  from utils.redis.rprofile import set_profile_info | 
            
            
              | 14 | 16 |   | 
            
            
              | 15 | 17 |   | 
            
            
            
            
              |  |  | @@ -38,7 +40,10 @@ def get_userinfo_api(request): | 
            
            
              | 38 | 40 |      #  u'province': u'Guangdong', | 
            
            
              | 39 | 41 |      #  u'unionId': u'ocMvos6NjeKLIBqg5Mr9QjxrP1FA', | 
            
            
              | 40 | 42 |      #  u'watermark': {u'appid': u'wx4f4bc4dec97d474b', u'timestamp': 1477314187}} | 
            
            
              | 41 |  | -    userinfo = get_userinfo(appid=appid, secret=secret, code=code, encryptedData=encryptedData, iv=iv) | 
            
            
              |  | 43 | +    # Get SessionKey | 
            
            
              |  | 44 | +    session_key = get_session_key(appid=appid, secret=secret, code=code) | 
            
            
              |  | 45 | +    # Get Userinfo | 
            
            
              |  | 46 | +    userinfo = get_userinfo(appid=appid, secret=secret, code=code, session_key=session_key, encryptedData=encryptedData, iv=iv) | 
            
            
              | 42 | 47 |   | 
            
            
              | 43 | 48 |      # Get or Create User | 
            
            
              | 44 | 49 |      user, created = UserInfo.objects.select_for_update().get_or_create(unionid=userinfo.get('unionId', '')) | 
            
            
            
            
              |  |  | @@ -61,6 +66,10 @@ def get_userinfo_api(request): | 
            
            
              | 61 | 66 |      user.signup_at = tc.utc_datetime() | 
            
            
              | 62 | 67 |      user.save() | 
            
            
              | 63 | 68 |   | 
            
            
              |  | 69 | +    # Store Userinfo | 
            
            
              | 64 | 70 |      set_profile_info(user) | 
            
            
              | 65 | 71 |   | 
            
            
              |  | 72 | +    # Store SessionKey | 
            
            
              |  | 73 | +    store_session_key(appid=appid, secret=secret, session_key=session_key, unid=user.user_id, storage=RedisStorage(r)) | 
            
            
              |  | 74 | + | 
            
            
              | 66 | 75 |      return response(200, 'Mini App Login Success', u'微信小程序登录成功', user.data) |